package com.itheima.exam;

/**
 * 案例七：判断101~200之间有多少个素数，并输出所有素数。（素数：除了1和它本身以外，不能被其他正整数整除，就叫素数(质数)。比如：3、7就是素数，而9、21等等不是素数。）
 */
public class Demo07 {

    public static void main(String[] args) {
        int count = getPrimeNumber(101, 200);
        System.out.println("素数的个数：" + count);
    }

    public static int getPrimeNumber(int m, int n) {
        //1、定义计数器变量count=0；
        int count = 0;
        //2、for循环，从m~n，获取每一个数。
        for (int i = m; i <= n; i++) {
            //3、判断这个数是不是素数。
            boolean flag = isPrimeNumber(i);
            //4、如果是，就打印这个素数，统计数量，最后返回count。
            if (flag) {
                System.out.println(i + " 是素数");
                count++;//统计数量
            }
        }
        //最后返回count。
        return count;
    }

    public static boolean isPrimeNumber(int number) {  //假设number=13
        //1、for循环，从2~number/2就行了
        for (int i = 2; i < number / 2; i++) {
            //2、让number对i取余，如果余数为0说明能整数，就不是素数，返回false
            if (number % i == 0) {  //2,3,4,5,6
                return false; //就不是素数，返回false
            }
        }
        //3、循环结束后返回true表示是素数。
        return true;
    }
}

